package com.webchat.rmi.pay;

import com.webchat.common.bean.APIPageResponseBean;
import com.webchat.common.bean.APIResponseBean;
import com.webchat.common.config.annotation.ValidatePermission;
import com.webchat.domain.vo.response.UserWalletDetailResponseVO;
import com.webchat.rmi.interceptor.RpcRequestInterceptor;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;

@FeignClient(name = "webchat-pay-service",
             contextId = "paymentWalletServiceClient",
             configuration = RpcRequestInterceptor.class)
public interface PaymentWalletServiceClient {

    @GetMapping("/pay-service/wallet/balance/{userId}")
    APIResponseBean<BigDecimal> getBalance(@PathVariable String userId);

    @ValidatePermission
    @GetMapping("/pay-service/wallet/page")
    APIPageResponseBean<UserWalletDetailResponseVO> page(
            @RequestParam(value = "transType", required = false) Integer transType,
            @RequestParam(value = "eventType", required = false) Integer eventType,
            @RequestParam(value = "userId", required = false) String userId,
            @RequestParam(value = "pageNo", required = false, defaultValue = "1") Integer pageNo,
            @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize);

}
